package dao

import (
	"time"
)

// 这是 PmsProductOperateLog 的全局公开dao对象，被service层调用!
var PmsProductOperateLogDao = pmsProductOperateLogDao{}

// 这是 pms_product_operate_log表 的实体类
type PmsProductOperateLog struct {
	CreateTime       time.Time `json:"create_time" form:"create_time" v:"create_time"`
	GiftPointNew     int32     `json:"gift_point_new" form:"gift_point_new" v:"gift_point_new"`
	GiftPointOld     int32     `json:"gift_point_old" form:"gift_point_old" v:"gift_point_old"` // 赠送的积分
	Id               int64     `json:"id" form:"id" v:"id"`
	OperateMan       string    `json:"operate_man" form:"operate_man" v:"operate_man"` // 操作人
	PriceNew         float64   `json:"price_new" form:"price_new" v:"price_new"`
	PriceOld         float64   `json:"price_old" form:"price_old" v:"price_old"`
	ProductId        int64     `json:"product_id" form:"product_id" v:"product_id"` // 这是一个逻辑外键,关联pms_product(id)
	SalePriceNew     float64   `json:"sale_price_new" form:"sale_price_new" v:"sale_price_new"`
	SalePriceOld     float64   `json:"sale_price_old" form:"sale_price_old" v:"sale_price_old"`
	UsePointLimitNew int32     `json:"use_point_limit_new" form:"use_point_limit_new" v:"use_point_limit_new"`
	UsePointLimitOld int32     `json:"use_point_limit_old" form:"use_point_limit_old" v:"use_point_limit_old"`
}

// 注意:这是 PmsProductOperateLog 的私有dao对象，只能在dao层内使用!
type pmsProductOperateLogDao struct {
	InsertTemplate func(arg PmsProductOperateLog) (int64, error)                               //插入一条记录
	UpdateTemplate func(arg PmsProductOperateLog) (int64, error)                               //更新一条记录
	DeleteTemplate func(id int64) (int64, error)                                               `args:"id"`                         //根据传入的主键删除一条记录
	SelectTemplate func(id int64) (PmsProductOperateLog, error)                                `args:"id"`                         //根据传入的主键获取一条记录
	List           func(keyword string, pageNum, pageSize int) ([]PmsProductOperateLog, error) `args:"keyword,page_num,page_size"` //模糊分页查询
}

/*
// 这是 pms_product_operate_log 表的Postman测试参数
// 该结构体中的字段就是: 前后端交互的json字段!
type PmsProductOperateLogPostman struct {
create_time
gift_point_new
gift_point_old
id
operate_man
price_new
price_old
product_id
sale_price_new
sale_price_old
use_point_limit_new
use_point_limit_old

}*/

// 这是 pms_product_operate_log 表的批量请求参数
type PmsProductOperateLogReq struct {
	List []PmsProductOperateLog `json:"list" form:"list"`
}
